From 704aa39dff68071b9363de0867ba8312c98a7bb4 Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Mon, 20 Feb 2006 17:22:00 +0000 Subject: [PATCH] Eliminate i386 idt_table. Add CONFIG_X86_NO_IDT to exclude all code which references the idt table. Make CONFIG_X86_F00F_BUG conditional on CONFIG_X86_NO_IDT. From: Jan Beulich Signed-off-by: Christian Limpach --- linux-2.6-xen-sparse/arch/i386/Kconfig | 5 +++++ linux-2.6-xen-sparse/arch/i386/Kconfig.cpu | 2 +- linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S | 10 +--------- linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c | 2 ++ 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/i386/Kconfig b/linux-2.6-xen-sparse/arch/i386/Kconfig index 88e1e1b98e..e79c712376 100644 --- a/linux-2.6-xen-sparse/arch/i386/Kconfig +++ b/linux-2.6-xen-sparse/arch/i386/Kconfig @@ -1186,6 +1186,11 @@ config X86_SYSENTER depends on !X86_NO_TSS default y +config X86_NO_IDT + bool + depends on X86_XEN + default y + config KTIME_SCALAR bool default y diff --git a/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu b/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu index 79603b3471..a52d7d494f 100644 --- a/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu +++ b/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu @@ -251,7 +251,7 @@ config X86_PPRO_FENCE config X86_F00F_BUG bool - depends on M586MMX || M586TSC || M586 || M486 || M386 + depends on (M586MMX || M586TSC || M586 || M486 || M386) && !X86_NO_IDT default y config X86_WP_WORKS_OK diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S b/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S index e0c31a0ae0..93c5e85526 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S +++ b/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S @@ -94,19 +94,11 @@ ENTRY(stack_start) .long init_thread_union+THREAD_SIZE .long __BOOT_DS -ready: .byte 0 - -.globl idt_descr -.globl cpu_gdt_descr - ALIGN - .word 0 # 32-bit align idt_desc.address -idt_descr: - .word IDT_ENTRIES*8-1 # idt contains 256 entries - .long idt_table # boot GDT descriptor (later on used by CPU#0): .word 0 # 32 bit align gdt_desc.address + .globl cpu_gdt_descr cpu_gdt_descr: .word GDT_SIZE .long cpu_gdt_table diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c b/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c index c94e7abb15..34576b17fa 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c +++ b/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c @@ -61,12 +61,14 @@ asmlinkage int system_call(void); /* Do we ignore FPU interrupts ? */ char ignore_fpu_irq = 0; +#ifndef CONFIG_X86_NO_IDT /* * The IDT has to be page-aligned to simplify the Pentium * F0 0F bug workaround.. We have a special link segment * for this. */ struct desc_struct idt_table[256] __attribute__((__section__(".data.idt"))) = { {0, 0}, }; +#endif asmlinkage void divide_error(void); asmlinkage void debug(void); -- 2.30.2